package com.jy.mapper;

import com.jy.pojo.FileDetails;
import com.jy.pojo.vo.FileVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 文件数据访问接口
 */
public interface FileMapper {
    /**
     * 获取全部文件信息
     * @return:文件信息List集合
     */
    public List<FileDetails> getAllFile();

    /**
     * 根据文件编号获取文件内容及地址
     * @param fileId:文件id
     * @return:文件信息
     */
    public FileDetails getFileByFileId(@Param("fileId") int fileId);

    /**
     * 根据文件夹编号获取此文件夹下所有文件信息
     * @param folderId:文件夹id
     * @return:文件信息List集合
     */
    public List<FileDetails> getFileDetailsByFileId(@Param("folderId") int folderId);

    /**
     * 多条件查询文件信息
     * @param fileVo:文件信息查询业务类
     * @return:文件信息List集合
     */
    public List<FileDetails> getFileBySearch(FileVo fileVo);

    /**
     * 多条件查询文件数量
     * @param fileVo
     * @return
     */
    public int getFileCountBySearch(FileVo fileVo);

    /**
     * 根据子编号查询其父类信息
     * @param id
     * @return
     */
    public List<FileDetails> selectParentList(@Param("id") int id);

    /**
     * 根据文件夹id查询该文件夹下所有文件
     * @param fileVo
     * @return
     */
    public List<FileDetails> getFileList(FileVo fileVo);

    /**
     * 根据文件名称数组获取文件信息集合
     * @param fileNames
     * @return
     */
    public List<FileDetails> getFileByFileName(String[] fileNames);

    /**
     * 获取指定路径下文件或文件夹
     * @param filePath
     * @return
     */
    public List<FileDetails> getFileByFilePath(@Param("filePath") String filePath);
    /**
     * 获取指定路径下文件或文件夹
     * @param filePath
     * @return
     */
    public List<FileDetails> getDirByFilePath(List<String> filePaths);
}
